CloudShellで最新のAWS CLIのバージョンに.bash_profileで自動で切り替える方法(AWS CLI v1、v2両方対応)
こんにちは、AWS事業本部の平木です!
新しいAPIが追加されるアップデートが入った際に、
検証する度に毎回AWS CLIのバージョンアップの方法を調べていたりしませんか?
自分は毎回調べるのが面倒なためCloudShellでは任意のタイミングで最新のAWS CLIのバージョンにアップデートできるようにしています。
今回は、実際に自分がCloudShellに適用しているものをご紹介します。
~/.bash_profileの編集
ホームディレクトリ内の.bash_profile
ファイルの末尾に下記を追記します。
※ホームディレクトリの外部のディレクトリを使用するとセッション終了時に消えてしまうため、永続的なストレージであるホームディレクトリ内のファイルに追記してください。
while read -p "Would you prefer to use the latest AWS CLI version or the default version? [1/2/(Enter)] " latest_version ; do case ${latest_version} in [1] ) if [[ ! -e /tmp/awscli-bundle.zip ]] ; then curl -s "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "/tmp/awscli-bundle.zip" unzip -q /tmp/awscli-bundle.zip -d /tmp/ sudo /usr/bin/python3 /tmp/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws aws --version fi break ;; [2] ) if [[ ! -e /tmp/awscliv2.zip ]] ; then curl -s "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "/tmp/awscliv2.zip" unzip -q /tmp/awscliv2.zip -d /tmp/ sudo /tmp/aws/install --update aws --version fi break ;; * ) break ;; esac done
確認
CloudShellの再起動を実施してみると、毎回CloudShell起動時に対話形式で下記のように問われます。
Would you prefer to use the latest AWS CLI version or the default version? [1/2/(Enter)]
ユーザーからの入力で下記のように分岐します。
- [1]を入力後Enter: AWS CLIバージョン
1
の最新バージョンでCloudShellを起動 - [2]を入力後Enter: AWS CLIバージョン
2
の最新バージョンでCloudShellを起動 - 空のままEnter:CloudShellのデフォルトバージョンで起動
となります。
APIによってはAWS CLIバージョン1しか対応していない場合や、バージョン2しか対応していない場合など様々あるため都度CloudShellを再起動し切り替えていただければと思います。
おわりに
今回は、AWS CLIバージョン1,バージョン2の両方に対応したCloudShellで最新のバージョンに引き上げる方法を記事にしました。
動作確認をよく行っていただいた上でAWS CLIを使用した検証にぜひご活用ください。